using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;
using automobili_data.interfaces;

namespace automobili_data
{
    abstract class AutomobiliDataManagerImpl
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="fn">First name</param>
        /// <param name="ln">Last name</param>
        public abstract void createUser(String fn, String ln, String mail, String pwd);
     

        /// <summary>
        /// 
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public abstract User getUser(long userId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public abstract User getUser(String username, String password);
        public abstract User getUserN(String username);
        public abstract ArrayList dohvatiModele();
        public abstract ArrayList dohvatiMarke();
        public abstract ArrayList dohvatiGorivo();
        public abstract ArrayList dohvatiKaroseriju();
        public abstract IList<Automobil>nadjiAutomobile(String marka, String model, String karoserija, String gorivo, double cena, int godinaProizv, int skuplj, int jeftinij, int starij, int mladj);
        public abstract IList<Automobil> nadjiAutomobileDeo(String marka, String model, String karoserija, String gorivo, double cena, int godinaProizv, int skuplj, int jeftinij, int starij, int mladj);
        public abstract IList<Automobil> dohvatiDetalje(int i);
        public abstract void unesiOglas(String marka, String model, String karoserija, String gorivo, double cena, int godinaProizv);
        public abstract Privilegije dohvatiPrivilegije(User kor);
        public abstract void kreirajOglas(int idKor, int aktivan);
        public abstract IList<Oglas> podaciZaMail (int idKor);
        public abstract void kreirajRezervaciju (int idKor, int idAut);
        public abstract IList<Rezervacija> podaciZaRezervaciju();
        public abstract IList<Oglas> dohvatiOglase (int idKor);
        public abstract void aktivacija (int idOgl, int status);
        public abstract IList<Rezervacija> dohvatiRezervacije (int idKor);
        public abstract IList<Privilegije> dohvatiPrivilegije ();
        public abstract Privilegije dohvatiPrivilegijeP (int idKor);
        public abstract IList<Privilegije> dohvatiPrivilegije (int idKor);
        public abstract void kreirajPrivilegiju (Privilegije privilegije);
        public abstract void dodajMarku (string marka);
        public abstract void dodajModel (string model);
        public abstract void dodajGorivo (string gorivo);
        public abstract void dodajKaroseriju (string karoserija);
        public abstract IList<User> dohvatiKontakt (int idAut);
        public abstract IList<User> dohvatiKorisnika (int idKor);
        public abstract Privilegije dohvatiPodrazPrivilegije ();
        public abstract void kreirajProfil (string korIme);
        public abstract IList<User> dohvatiProfil (int idKor);
        public abstract void azurirajProfil (string ime, string prezime, string korIme, int idKor, string jezik, int velicina);
        public abstract int proveraKorisnickog (string korIme);
        public abstract ArrayList dohvatiJezike ();
        public abstract IList<Rezervacija> dohvatiRezervacije ();
        public abstract void produziRezervaciju (int idRez);
    }
}
